from flask_migrate import Migrate, MigrateCommand, current
from flask import session, current_app
from flask_script import Manager
import logging

from info import create_app,db,models
# manage.py 是程序启动的入口，只关心启动的相关参数

# 通过指定的配置名字创建对应配置的app
# create_app就类似于工厂方法
from info.models import User

app = create_app("development")
# 使用终端管理app的应用程序
manager = Manager(app)
# 数据库迁移需要与app连接
Migrate(app,db)
# 向manager中添加一个命令db
manager.add_command('db',MigrateCommand)

@manager.option('-n',"-name",dest="name")
@manager.option('-p',"-password",dest="password")
def createsuperuser(name,password):
    if not all([name,password]):
        print("参数不足")
    user = User()
    user.nick_name = name
    user.mobile = name
    user.password = password
    user.is_admin = True
    try:
        db.session.add(user)
        db.session.commit()
    except Exception as e:
        db.session.rollback()
        current_app.logger.error(e)
    print("添加管理员成功")


if __name__ == '__main__':
    # print(app.url_map)
    manager.run()